package gamefw.uiplugin;

import gamefw.gameplugin.Coordinate;
import gamefw.gameplugin.UIEventListener;

/**
 * The Class VisualBoard. Implementations of this abstract class are responsible
 * to implement the drawing procedure of a board (implementing IDrawable interface) and also
 * retrieve user input and call all the registered event listeners.
 */
public abstract class VisualBoard implements IDrawable {

	/**
	 * On mouse click.
	 */
	public abstract void onClick(Coordinate position);
	
	/**
	 * On mouse drag.
	 */
	public abstract void onDrag(Coordinate from, Coordinate to);
	
	/**
	 * Adds the user interface event listener.
	 *
	 * @param eventListener the event listener
	 */
	public abstract void addUIEventListener(UIEventListener eventListener);
}
